/**
 * Copyright (c) 2011-2020, hubin (jobob@qq.com).
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.baomidou.mybatisplus.generator.config;

/**
 * <p>
 * 模板路径配置项
 * </p>
 *
 * @author tzg hubin
 * @since 2017-06-17
 */
public class TemplateConfig {

    private String entity = ConstVal.TEMPLATE_ENTITY_JAVA;

    private String service = ConstVal.TEMPLATE_SERVICE;
    private String feignService = ConstVal.TEMPLATE_FEIGN_SERVICE;

    private String serviceImpl = ConstVal.TEMPLATE_SERVICEIMPL;

    private String mapper = ConstVal.TEMPLATE_MAPPER;

    private String xml = ConstVal.TEMPLATE_XML;

    private String controller = ConstVal.TEMPLATE_CONTROLLER;

    private String icontroller = ConstVal.TEMPLATE_ICONTROLLER;

    private String apicontroller = ConstVal.TEMPLATE_APICONTROLLER;

    private String invoker = ConstVal.TEMPLATE_INVOKER;

    private String ainvoker = ConstVal.TEMPLATE_AINVOKER;

    /* yc add: dto */
    private String dto = ConstVal.TEMPLATE_DTO;
    private String exception = ConstVal.TEMPLATE_EXCEPTION;
    private String shdowEntity = ConstVal.TEMPLATE_SHADOW_ENTITY;
    private String shadowMapper = ConstVal.TEMPLATE_SHADOW_MAPPER;

    public String getEntity(boolean kotlin) {
        return kotlin ? ConstVal.TEMPLATE_ENTITY_KT : entity;
    }

    public TemplateConfig setEntity(String entity) {
        this.entity = entity;
        return this;
    }

    public String getService() {
        return service;
    }

    public TemplateConfig setService(String service) {
        this.service = service;
        return this;
    }

    public String getServiceImpl() {
        return serviceImpl;
    }

    public TemplateConfig setServiceImpl(String serviceImpl) {
        this.serviceImpl = serviceImpl;
        return this;
    }

    public String getMapper() {
        return mapper;
    }

    public TemplateConfig setMapper(String mapper) {
        this.mapper = mapper;
        return this;
    }

    public String getXml() {
        return xml;
    }

    public TemplateConfig setXml(String xml) {
        this.xml = xml;
        return this;
    }

    public String getController() {
        return controller;
    }

    public String getIcontroller() {
        return icontroller;
    }

    public TemplateConfig setController(String controller) {
        this.controller = controller;
        return this;
    }

    public TemplateConfig setIcontroller(String icontroller) {
        this.icontroller = icontroller;
        return this;
    }

    public String getApicontroller() {
        return apicontroller;
    }

    public TemplateConfig setApicontroller(String apicontroller) {
        this.apicontroller = apicontroller;
        return this;
    }

    public String getInvoker() {
        return invoker;
    }

    public TemplateConfig setInvoker(String invoker) {
        this.invoker = invoker;
        return this;
    }

    public String getAinvoker() {
        return ainvoker;
    }

    public TemplateConfig setAinvoker(String ainvoker) {
        this.ainvoker = ainvoker;
        return this;
    }

    public String getDto(boolean kotlin) {
        return kotlin ? ConstVal.TEMPLATE_DTO_KT : dto;
    }

    public String getDto() {
        return dto;
    }

    public TemplateConfig setDto(String dto) {
        this.dto = dto;
        return this;
    }

    public String getException() {
        return exception;
    }

    public TemplateConfig setException(String exception) {
        this.exception = exception;
        return this;
    }

    public String getShdowEntity() {
        return shdowEntity;
    }

    public TemplateConfig setShdowEntity(String shdowEntity) {
        this.shdowEntity = shdowEntity;
        return this;
    }

    public String getShadowMapper() {
        return shadowMapper;
    }

    public TemplateConfig setShadowMapper(String shadowMapper) {
        this.shadowMapper = shadowMapper;
        return this;
    }

    public String getFeignService() {
        return feignService;
    }

    public TemplateConfig setFeignService(String feignService) {
        this.feignService = feignService;
        return this;
    }
}
